package com.test.thread;

/**
 * 面试题：按照顺序指向三个线程，A B C
 * A 输出1遍字符AA
 * B 输出2遍字符BB
 * C 输出3遍字符CC
 * <p>
 * 执行十轮
 *
 * 主要考察join   见简单易实现
 * 但是创建线程过多，30个线程
 *
 *
 * 为什么这里不好理解join
 * 那是没理解谁去调研，和被调用的关系。
 *
 * 在这里 是主线程 去调用 A B  C 三个线程的join方法
 * join:字面含义---等待完成。
 *
 * 可以对比一下线程的start方法，调用线程的start方法，那就是线程开始启动
 * 那么调用线程的join方法，那就是线程等待完成，阻塞其他线程（主线程）
 */
public class BaguwenThread1 {

    public static void main(String[] args) throws Exception {


        for (int i = 0; i < 10; i++) {

            Thread threadA = new Thread(() -> {
                System.out.println("AA");
            });
            threadA.start();
            threadA.join();

            Thread threadB = new Thread(() -> {
                System.out.println("BB");
                System.out.println("BB");
            });
            threadB.start();
            threadB.join();

            Thread threadC = new Thread(() -> {
                System.out.println("CC");
                System.out.println("CC");
                System.out.println("CC");
            });
            threadC.start();
            threadC.join();
            int j = i + 1;
            System.out.println("-----第" + j + "轮结束-------------");
        }


    }
}
